home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 4 / United Public Domain Gold 4.iso / fredfish / ff.0013.dms / ff.0013.adf / Eliza.abc < prev    next >
Text File  |  1986-02-21  |  8KB  |  213 lines

  1.  
  2. 10 'DEF SEG=&H40:POKE &H17, (PEEK(&H17) AND &HFFBF) +64:DEF SEG=&HB000:POKE 3998,24
  3. 20 CLS
  4. 30 '   ELIZA/DOCTOR
  5. 40 '   CREATED BY JOESEPH WEIZENBAUM
  6. 50 '   THIS VERSION BY JEFF SHRAGER
  7. 60 '   EDITED AND MODIFIED FOR IBM-PC BASICA A BY WILBUR STREETT
  8. 70 '   1806 PITNEY STREET, OCEAN, NJ, 07712, 531-3790
  9. 80 '
  10. 90 '  ----------INITIALAZATION-----------
  11. 100 DIM C$(72),I$(72),K$(72),F$(72),S$(72),R$(72),P$(72),Z$(72)
  12. 110 DIM S(36),R(36),N(36): FOR J = 0 TO 8: READ HOW%(J):NEXT J
  13. 115 DATA 250,0,150,1,22000,50,10,0,0
  14. 120 N1=36:N2=12:N3=112:SAY A$,HOW%
  15. 130 FOR X=1 TO N1+N2+N3:READ Z$:NEXT X:REM SAME AS RESTORE
  16. 140 FOR X=1 TO N1
  17. 150 READ S(X),L:R(X)=S(X):N(X)=S(X)+L-1
  18. 160 NEXT X
  19.  
  20. 170 PRINT "HELLO!  I AM ELIZA.  WHAT'S YOUR PROBLEM?":PRINT A$:A$= TRANSLATE$("HELLO! I AM EELI ZA. WHAT'S YOUR PROBLUM"):SAY A$,HOW% 
  21. 180 REM
  22. 190 REM    ------- USER  INPUT  SECTION----------
  23. 200 REM
  24. 210 LINE INPUT I$
  25. 220 I$=" "+I$+"  " '   GET RID OF APOSTROPHES
  26. 230 FOR L=1 TO LEN(I$)
  27. 240 IF MID$(I$,L,1)="'" THEN I$=LEFT$(I$,L-1)+RIGHT$(I$,LEN(I$)-L):GOTO 240
  28. 250 IF L+4<=LEN(I$) THEN IF MID$(I$,L,4)="SHUT" THEN PRINT "SHUT UP....":A$= TRANSLATE$("SHUT UP!"):SAY A$,HOW%:END
  29. 260 NEXT L
  30. 270 IF I$=P$ THEN A$="PLEASE DON'T REPEAT YOURSELF!":PRINT A$:A$=TRANSLATE$ (A$):SAY A$,HOW%:GOTO 180
  31. 280 REM
  32. 290 REM    --------FIND KEYWORD IN I$-----
  33. 300 REM
  34. 310 RESTORE
  35. 320 S=0
  36. 330 FOR K=1 TO N1
  37. 340 READ K$
  38. 350 IF S>0 THEN 390
  39. 360 FOR L=1 TO LEN(I$)-LEN(K$)+1
  40. 370 IF MID$(I$,L,LEN(K$))=K$ THEN S=K:T=L:F$=K$
  41. 380 NEXT L
  42. 390 NEXT K:IF S>0 THEN K=S:L=T:GOTO 420
  43. 400 K=36:GOTO 620:REM WE DIDN'T FIND ANY KEYWORDS
  44. 410 REM
  45. 420 REM     TAKE RIGHT PART OF STRING AND CONJUGATE IT
  46. 430 REM     USING THE LIST OF STRINGS TO BE SWAPPED
  47. 440 REM
  48. 450 RESTORE:FOR X=1 TO N1:READ Z$:NEXT X:REM SKIP OVER KEYWORDS
  49. 460 C$=" "+RIGHT$(I$,LEN(I$)-LEN(F$)-L+1)
  50. 470 FOR X=1 TO N2/2
  51. 480 READ S$,R$
  52. 490 FOR L=1 TO LEN(C$)
  53. 500 IF L+LEN(S$)=LEN(C$) THEN 550
  54. 510 IF MID$(C$,L,LEN(S$))<>S$ THEN 550
  55. 520 C$=LEFT$(C$,L-1)+R$+RIGHT$(C$,LEN(C$)-L-LEN(S$)+1)
  56. 530 L=L+LEN(R$)
  57. 540 GOTO 580
  58. 550 IF L+LEN(R$)>LEN(C$) THEN 580
  59. 560 IF MID$(C$,L,LEN(R$))<>R$ THEN 580
  60. 570 C$=LEFT$(C$,L-1)+S$+RIGHT$(C$,LEN(C$)-L-LEN(R$)+1)
  61. 580 NEXT L
  62. 590 NEXT X
  63. 600 IF MID$(C$,2,1)=" " THEN C$=RIGHT$(C$,LEN(C$)-1):REM ONLY 1 SPACE
  64. 610 REM
  65. 620 REM   NOW USING THE KEYWORD NUMBER (K) GET REPLY
  66. 630 REM
  67. 640 RESTORE:FOR X=1 TO N1+N2:READ Z$:NEXT X
  68. 650 FOR X=1 TO R(K):READ F$:NEXT X:REM  READ RIGHT REPLY
  69. 660 R(K)=R(K)+1:IF R(K)>N(K) THEN R(K)=S(K)
  70. 670 IF RIGHT$(F$,1)<>"*" THEN PRINT F$:P$=I$:SAY TRANSLATE$ (F$),HOW%:GOTO 180
  71. 680 A$= LEFT$(F$,LEN(F$)-1)+C$:PRINT A$:SAY TRANSLATE$(A$),HOW% 
  72. 690 P$=I$:GOTO 180
  73. 700 REM
  74. 710 REM   ---------PROGRAM DATA FOLLOWS----------
  75. 720 REM
  76. 730 REM       KEYWORDS
  77. 740 REM
  78. 750 DATA "CAN YOU","CAN I","YOU ARE","YOURE","I DONT","I FEEL"
  79. 760 DATA "WHY DONT YOU","WHY CANT I","ARE YOU","I CANT","I AM","IM "
  80. 770 DATA "YOU ","I WANT","WHAT","HOW","WHO","WHERE","WHEN","WHY"
  81. 780 DATA "NAME","CAUSE","SORRY","DREAM","HELLO","HI ","MAYBE"
  82. 790 DATA "NO ","YOUR","ALWAYS","THINK","ALIKE","YES","FRIEND"
  83. 800 DATA "COMPUTER","NOKEYFOUND"
  84. 810 REM
  85. 820 REM     STRING DATA FOR CONJUGATIONS
  86. 830 REM
  87. 840 DATA " ARE "," AM ","WERE ","WAS "," YOU "," I "," YOUR ","MY "
  88. 850 DATA " IVE "," YOURVE "," IM "," YOURE "
  89. 860 REM
  90. 870 REM    REPLIES
  91. 880 REM
  92. 890 DATA "DON'T YOU BELIEVE THAT I CAN*"
  93. 900 DATA "PERHAPS YOU WOULD LIKE TO BE ABLE TO*"
  94. 910 DATA "YOU WANT ME TO BE ABLE TO*"
  95. 920 DATA "PERHAPS YOU DON'T WANT TO*"
  96. 930 DATA "DO YOU WANT TO BE ABLE TO*"
  97. 940 DATA "WHAT MAKES YOU THINK I AM*"
  98. 950 DATA "DOES IT PLEASE YOU TO BELIEVE I AM*"
  99. 960 DATA "PERHAPS YOU WOULD LIKE TO BE*"
  100. 970 DATA "DO YOU SOMETIMES WISH YOU WERE*"
  101. 980 DATA "DON'T YOU REALLY*"
  102. 990 DATA "WHY DON'T YOU*"
  103. 1000 DATA "DO YOU WISH TO BE ABLE TO*"
  104. 1010 DATA "DOES THAT TROUBLE YOU?"
  105. 1020 DATA "TELL ME MORE ABOUT SUCH FELLINGS."
  106. 1030 DATA "DO YOU OFTEN FEEL*"
  107. 1040 DATA "DO YOU ENJOY FEELING*"
  108. 1050 DATA "DO YOU REALLY BELIEVE I DON'T*"
  109. 1060 DATA "PERHAPS IN GOOD TIME I WILL*"
  110. 1070 DATA "DO YOU WANT ME TO*"
  111. 1080 DATA "DO YOU THINK YOU SHOULD BE ABLE TO*'
  112. 1090 DATA "WHY CAN'T YOU*"
  113. 1100 DATA "WHY ARE YOU INTERESTED IN WHETER OR NOT I AM*"
  114. 1110 DATA "WOULD YOU PREFER IF I WERE NOT*"
  115. 1120 DATA "PERHAPS IN YOUR FANTASIES I AM*"
  116. 1130 DATA "HOW DO YOU KNOW YOU CAN'T*"
  117. 1140 DATA "HAVE YOU TRIED?"
  118. 1150 DATA "PERHAPS YOU CAN NOW*"
  119. 1160 DATA "DID YOU COME TO ME BECAUSE YOU ARE*"
  120. 1170 DATA "HOW LONG HAVE YOU BEEN*"
  121. 1180 DATA "DO YOU BELIEVE IT IS NORMAL TO BE*"
  122. 1190 DATA "DO YOU ENJOY BEING*"
  123. 1200 DATA "WE WERE DISCUSSING YOU-- NOT ME."
  124. 1210 DATA "OH, I*"
  125. 1220 DATA "YOU'RE NOT REALLY TALKING ABOUT ME, ARE YOU?"
  126. 1230 DATA "WHAT WOULD IT MEAN TO YOU IF I GOT*"
  127. 1240 DATA "WHY DO YOU WANT*"
  128. 1250 DATA "SUPPOSE YOU SOON GOT*"
  129. 1260 DATA "WHAT IF YOU NEVER GOT*"
  130. 1270 DATA "I SOMETIMES ALSO WANT*"
  131. 1280 DATA "WHY DO YOU ASK?"
  132. 1290 DATA "DOES THAT QUESTION INTEREST YOU?"
  133. 1300 DATA "WHAT ANSWER WOULD PLEASE YOU THE MOST?"
  134. 1310 DATA "WHAT DO YOU THINK?"
  135. 1320 DATA "ARE SUCH QUESTIONS ON YOUR MIND OFTEN?"
  136. 1330 DATA "WHAT IS IT THAT YOU REALLY WHAT TO KNOW?"
  137. 1340 DATA "HAVE YOU ASKED ANYONE ELSE?"
  138. 1350 DATA "HAVE YOU ASKED SUCH QUESTIONS BEFORE?"
  139. 1360 DATA "WHAT ELSE COMES TO MIND WHEN YOU ASK THAT?"
  140. 1370 DATA "NAMES DON'T INTEREST ME."
  141. 1380 DATA "I DON'T CARE ABOUT NAMES--  PLEASE GO ON."
  142. 1390 DATA "IS THAT THE REAL REASON?"
  143. 1400 DATA "DON'T ANY OTHER REASONS COME TO MIND?"
  144. 1410 DATA "DOES THAT REASON EXPLAIN ANYTHING ELSE?"
  145. 1420 DATA "WHAT OTHER REASONS MIGHT THERE BE?"
  146. 1430 DATA "PLEASE DON'T APOLOGIZE!"
  147. 1440 DATA "APOLOGIES ARE NOT NECESSARY."
  148. 1450 DATA "WHAT FEELING DO YOU HAVE WHEN YOU APOLOGIZE?"
  149. 1460 DATA "DON'T BE SO DEFENSIVE!"
  150. 1470 DATA "WHAT DOES THAT DREAM SUGGEST TO YOU?"
  151. 1480 DATA "DO YOU DREAM OFTEN?"
  152. 1490 DATA "WHAT PERSONS APPEAR IN YOUR DREAMS?"
  153. 1500 DATA "ARE YOU DISTURBED BY YOUR DREAMS?"
  154. 1510 DATA "HOW DO YOU DO ....  PLEASE STATE YOUR PROBLEM."
  155. 1520 DATA "YOU DON'T SEEM QUITE CERTAIN."
  156. 1530 DATA "WHY THE UNCERTAIN TONE?"
  157. 1540 DATA "CAN'T YOU BE MORE POSITIVE?"
  158. 1550 DATA "YOU AREN'T SURE?"
  159. 1560 DATA "DON'T YOU KNOW?"
  160. 1570 DATA "ARE YOU SAYING NO JUST TO BE NEGATIVE?"
  161. 1580 DATA "YOU ARE BEING A BIT NEGATIVE."
  162. 1590 DATA "WHY NOT?"
  163. 1600 DATA "ARE YOU SURE?"
  164. 1610 DATA "WHY NO?"
  165. 1620 DATA "WHY ARE YOU CONCERNED ABOUT MY*"
  166. 1630 DATA "WHAT ABOUT YOUR OWN*"
  167. 1640 DATA "CAN YOU THINK OF A SPECIFIC EXAMPLE?"
  168. 1650 DATA "WHEN?"
  169. 1660 DATA "WHAT ARE YOU THINKING OF?"
  170. 1670 DATA "REALLY, ALWAYS?"
  171. 1680 DATA "DO YOU REALLY THINK SO?"
  172. 1690 DATA "BUT YOU ARE NOT SURE YOU*"
  173. 1700 DATA "DO YOU DOUBT YOU*"
  174. 1710 DATA "IN WHAT WAY?"
  175. 1720 DATA "WHAT RESEMBLANCE DO YOU SEE?"
  176. 1730 DATA "WHAT DOES THE SIMILARITY SUGGEST TO YOU?"
  177. 1740 DATA "WHAT OTHER CONNECTIONS DO YOU SEE?"
  178. 1750 DATA "COULD THER REALLY BE SOME CONNECTION?"
  179. 1760 DATA "HOW?"
  180. 1770 DATA "YOU SEEM QUITE POSITIVE."
  181. 1780 DATA "ARE YOU SURE?"
  182. 1790 DATA "I SEE."
  183. 1800 DATA "I UNDERSTAND."
  184. 1810 DATA "WHY DO YOU BRING UP THE TOPIC OF FRIENDS?"
  185. 1820 DATA "DO YOUR FRIENDS WORRY YOU?"
  186. 1830 DATA "DO YOUR FRIENDS PICK ON YOU?"
  187. 1840 DATA "ARE YOU SURE YOU HAVE ANY FRIENDS?"
  188. 1850 DATA "DO YOU IMPOSE ON YOUR FRIENDS?"
  189. 1860 DATA "PERHAPS YOUR LOVE FOR FRIENDS WORRIES YOU."
  190. 1870 DATA "DO COMPUTERS WORRY YOU?"
  191. 1880 DATA "ARE YOU TALKING ABOUT ME IN PARTICULAR?"
  192. 1890 DATA "ARE YOU FRIGHTENED BY MACHINES?"
  193. 1900 DATA "WHY DO YOU MENTION COMPUTERS?"
  194. 1910 DATA "WHAT DO YOU THINK MACHINES HAVE TO DO WITH YOUR PROBLEM?"
  195. 1920 DATA "DON'T YOU THINK COMPUTERS CAN HELP PEOPLE?"
  196. 1930 DATA "WHAT IS IT ABOUT COMPUTER THAT WORRIES YOU?"
  197. 1940 DATA "SAY, DO YOU HAVE ANY PSYCHOLOGICAL PROBLEMS?"
  198. 1950 DATA "WHAT DOES THAT SUGGEST TO YOU?"
  199. 1960 DATA "I SEE."
  200. 1970 DATA "I'M NOT SURE I UNDERSTAND YOU FULLY."
  201. 1980 DATA "COME, COME, ELUCIDATE YOUR THOUGHTS."
  202. 1990 DATA "CAN YOU ELABORATE ON THAT?"
  203. 2000 DATA "THAT IS QUITE INTERESTING."
  204. 2010 REM
  205. 2020 REM    DATA FOR FINDING RIGHT REPLIES
  206. 2030 REM
  207. 2040 DATA 1,3,4,2,6,4,6,4,10,4,14,3,17,3,20,2,22,3,25,3
  208. 2050 DATA 28,4,28,4,32,3,35,5,40,9,40,9,40,9,40,9,40,9,40,9
  209. 2060 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
  210. 2070 DATA 80,3,83,7,90,3,93,6,99,7,106,6
  211. ,9,40,9,40,9,40,9,40,9
  212. 2060 DATA 49,2,51,4,55,4,59,4,63,1,63,1,64,5,69,5,74,2,76,4
  213.